from bs4 import BeautifulSoup
from bs4 import element
import requests,os
url='https://www.lottery.gov.cn/historykj/history.jspx?page=false&_ltype=dlt&termNum=10&startTerm=&endTerm='
r=requests.get(url,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'})
demo=r.text;

soup=BeautifulSoup(demo,'html.parser')

#demo 表示被解析的html格式的内容
#html.parser表示解析用的解析器

#s1=open('soup.html','wb')
#s1.write(soup.prettify().encode())
#with open('soup.html','wb') as s1:
#    s1.write(soup.prettify().encode())

#print(soup)# 输出响应的html对象
#print(soup.prettify())# 使用prettify()格式化显示输出



#print(soup.title)  # 获取html的title标签的信息
#print(soup.a)  # 获取html的a标签的信息(soup.a默认获取第一个a标签，想获取全部就用for循环去遍历)
#print(soup.a.name)   # 获取a标签的名字
#print(soup.a.parent.name)   # a标签的父标签(上一级标签)的名字
#print(soup.a.parent.parent.name)  # a标签的父标签的父标签的名字




#print('a标签类型是：', type(soup.a))   # 查看a标签的类型
#print('第一个a标签的属性是：', soup.a.attrs)  # 获取a标签的所有属性(注意到格式是字典)
#print('a标签属性的类型是：', type(soup.a.attrs))  # 查看a标签属性的类型
#print('a标签的class属性是：', soup.a.attrs['class'])   # 因为是字典，通过字典的方式获取a标签的class属性
#print('a标签的href属性是：', soup.a.attrs['href'])   # 同样，通过字典的方式获取a标签的href属性




#print('所有a标签的内容：', soup.find_all('a')) # 使用find_all()方法通过标签名称查找a标签,返回的是一个列表类型
#print('a标签和b标签的内容：', soup.find_all(['a', 'b']))  # 把a标签和b标签作为一个列表传递，可以一次找到a标签和b标签



#for t in soup.find_all('a'):  # for循环遍历所有a标签，并把返回列表中的内容赋给t
#      print('t的值是：', t)  # link得到的是标签对象
#      print('t的类型是：', type(t))
#      print('a标签中的href属性是：', t.get('href'))  # 获取a标签中的url链接


#print(soup.find_all('tbody')[0].contents) 


for i in soup.find_all('tbody')[0].contents:  # 如果给出的标签名称是True，则找到所有标签
    if len(i)==41:         
        _index=0
        for td in i:
            if isinstance(td,element.Tag):
                if _index==0:
                    print('期数：%s' % td.string)
                if _index==1:
                    print('前区1：%s' % td.string)
                if _index==2:
                    print('前区2：%s' % td.string)
                if _index==3:
                    print('前区3：%s' % td.string)
                if _index==4:
                    print('前区4：%s' % td.string)
                if _index==5:
                    print('前区5：%s' % td.string)
                if _index==6:
                    print('后区1：%s' % td.string)
                if _index==7:
                    print('后区2：%s' % td.string)
                _index=_index+1

#a=soup.find_all('a', href='https://baike.baidu.com')
#print('href属性为http..的a标签元素是:', a[0])  # 标注属性检索
#print('href属性为http..的a标签元素是:', a[0].contents)  # 标注属性检索
#print('href属性为http..的a标签元素是:', a[0].contents[1].get('class'))  # 标注属性检索
#print('href属性为http..的a标签元素是:', a[0].get('name'))  # 标注属性检索
#print('class属性为title的标签元素是：', soup.find_all(class_='title'))  # 指定属性，查找class属性为title的标签元素，注意因为class是python的关键字，所以这里需要加个下划线'_'
#print('id属性为link1的标签元素是：', soup.find_all(id='link1'))  # 查找id属性为link1的标签元素
#print('第一个a标签的string是：', soup.a)



#print(type(soup.body.children))  # children返回的是一个迭代对象，只能通过for循环来使用，不能直接通过索引来读取其中的内容
#for i in soup.body.children:   # 通过for循环遍历body标签的儿子节点
#    print(i)   # 打印节点的名字

